#ifndef	_REFERENCE_SEQUENCE_H_
#define _REFERENCE_SEQUENCE_H_

#include "common.h"
#include "DynamicBitset.h"
#include "types.h"
#include <fstream>

/* Mapping from A, C, G, T to binary: */
#define A 0
#define C 1
#define G 2
#define T 3

class ReferenceSequence
{
  private:
  	static const int CHAR_NUM = 4;
  	
  	static const int BUFFER_SIZE;
  	
	ulong strLen;
	DynamicBitset* *bitsets;

  public:
	ReferenceSequence(ifstream &in, ulong maxSeqLength);

	~ReferenceSequence();
	
	ulong getLength() const { return strLen; }
	
	int getBit(short c, size_t indx) const;
	


#ifdef DEBUG
	void print() const;
#endif


};



#endif /* _REFERENCE_SEQUENCE_H_ */

